package com.starmark.gateway.project.provider.service;


import com.starmark.core.framework.base.BaseService;
import com.starmark.core.framework.base.BaseTree;
import com.starmark.gateway.project.provider.entity.GatewayApp;
import com.starmark.gateway.project.provider.vo.GatewayAppVo;

import java.util.List;

/**
 * <p>
 * 网关应用 服务类
 * </p>
 *
 * @author starmark
 * @since 2020-01-24
 */
public interface IGatewayAppService extends BaseService<GatewayApp> {


    /**
     * 新设网关应用服务
     * @param gatewayAppVo 网关应用Vo
     */
    String addApp(GatewayAppVo gatewayAppVo);

    /**
     * 修改网关应用服务
     * @param gatewayAppVo 网关应用Vo
     */
    void updateApp(GatewayAppVo gatewayAppVo);


    /**
     * 查询相关组合数据
     *
     * @param id 网关应用ID
     * @return 网关应用信息
     */

    GatewayAppVo getApp(String id);

    /**
     * 删除网关应用
     *
     * @param id 应用ID
     */
    void delete(String id);



    /**
     * 重新加载网关路由配置资源到redis
     */
    void overload();
    /**
     *
     * @param projectCode 工程编码
     * @return 可选择的树
     */
    List<BaseTree> findBaseTrees(String projectCode);
}
